var LRUCache = function(capacity) {
    this.cache=new Map()
    this.capacity=capacity
};

LRUCache.prototype.get = function(key) {
    if(this.cache.has(key)){
        const temp=this.cache.get(key)//先存起来
        this.cache.delete(key)//删除旧的位置的值
        this.cache.set(key,temp)//把该值存入最新的位置（相当于更新了位置）
        return this.cache.get(key)
    }
    return -1
};

LRUCache.prototype.put = function(key, value) {
    if(this.cache.has(key)){//如果缓存中已经有了这个键
        this.cache.delete(key)
    }else{
        if(this.cache.size>=this.capacity){//如果缓存已满
            //this.cache.keys() 返回一个包含 Map 所有键的迭代器在 JavaScript 的 Map 中，元素的遍历顺序是按照插入顺序进行的，最早插入的元素最先被遍历到
            this.cache.delete(this.cache.keys().next().value)
        }
    }
    this.cache.set(key,value)
};